<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Sa-OAuth2-认证中心-确认授权页</title>
    <style type="text/css">
        body{background-color: #F5F5D5;}
        *{margin: 0px; padding: 0px;}
        .login-box{width: 400px; margin: 20vh auto; padding: 70px; border: 1px #000 solid;}
        .login-box button{padding: 5px 15px; cursor: pointer; }
    </style>
</head>
<body>
<div class="login-box">
    <h2>Sa-OAuth2-认证中心-确认授权页</h2> <br>
    <div>
        <div><b>应用ID：</b><span th:utext="${clientId}"></span></div>
        <div><b>请求授权：</b><span th:utext="${scope}"></span></div>
        <br><div>------------- 是否同意授权 -------------</div><br>
        <div>
            <button onclick="yes()">同意</button>
            <button onclick="no()">拒绝</button>
        </div>
    </div>
</div>
<script src="https://unpkg.zhimg.com/jquery@3.4.1/dist/jquery.min.js"></script>
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
<script>window.jQuery || alert('当前页面CDN服务商已宕机，请将所有js包更换为本地依赖')</script>
<script type="text/javascript">

    // 同意授权
    function yes() {
        console.log('-----------');
        $.ajax({
            url: '/oauth2/doConfirm',
            data: {
                client_id: getParam('client_id'),
                scope: getParam('scope')
            },
            dataType: 'json',
            success: function(res) {
                if(res.code == 200) {
                    layer.msg('授权成功！');
                    setTimeout(function() {
                        location.reload(true);
                    }, 800);
                } else {
                    // 重定向至授权失败URL
                    layer.alert('授权失败！');
                }
            },
            error: function(e) {
                console.log('error');
            }
        });
    }

    // 拒绝授权
    function no() {
        location.href = joinParam(getParam('redirect_uri'), "handle=refuse&msg=用户拒绝了授权");
    }

    // 从url中查询到指定名称的参数值
    function getParam(name, defaultValue){
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if(pair[0] === name){return pair[1];}
        }
        return(defaultValue === undefined ? null : defaultValue);
    }

    // 在url上拼接上kv参数并返回
    function joinParam(url, parameStr) {
        if(parameStr == null || parameStr.length === 0) {
            return url;
        }
        var index = url.indexOf('?');
        // ? 不存在
        if(index === -1) {
            return url + '?' + parameStr;
        }
        // ? 是最后一位
        if(index === url.length - 1) {
            return url + parameStr;
        }
        // ? 是其中一位
        if(index > -1 && index < url.length - 1) {
            // 如果最后一位是 不是&, 且 parameStr 第一位不是 &, 就增送一个 &
            if(url.lastIndexOf('&') !== url.length - 1 && parameStrindexOf('&') !== 0) {
                return url + '&' + parameStr;
            } else {
                return url + parameStr;
            }
        }
    }


</script>
</body>
</html>
